node {
  name: "Variable"
  op: "VarHandleOp"
  attr {
    key: "allowed_devices"
    value {
      list {
      }
    }
  }
  attr {
    key: "container"
    value {
      s: ""
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
  attr {
    key: "shared_name"
    value {
      s: "Variable"
    }
  }
}
node {
  name: "Variable/Read/ReadVariableOp"
  op: "ReadVariableOp"
  input: "Variable"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "Const"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "util_test_1"
      }
    }
  }
}
node {
  name: "StatefulPartitionedCall"
  op: "StatefulPartitionedCall"
  input: "Const"
  input: "Variable"
  attr {
    key: "Tin"
    value {
      list {
        type: DT_STRING
        type: DT_RESOURCE
      }
    }
  }
  attr {
    key: "Tout"
    value {
      list {
        type: DT_STRING
      }
    }
  }
  attr {
    key: "_read_only_resource_inputs"
    value {
      list {
      }
    }
  }
  attr {
    key: "config"
    value {
      s: ""
    }
  }
  attr {
    key: "config_proto"
    value {
      s: "\202\001\0008\0012\002J\000\n\007\n\003CPU\020\001\n\007\n\003GPU\020\000"
    }
  }
  attr {
    key: "executor_type"
    value {
      s: ""
    }
  }
  attr {
    key: "f"
    value {
      func {
        name: "__inference_pruned_2743"
      }
    }
  }
}
node {
  name: "PartitionedCall"
  op: "PartitionedCall"
  input: "Variable"
  attr {
    key: "Tin"
    value {
      list {
        type: DT_RESOURCE
      }
    }
  }
  attr {
    key: "Tout"
    value {
      list {
        type: DT_FLOAT
      }
    }
  }
  attr {
    key: "_read_only_resource_inputs"
    value {
      list {
        i: 0
      }
    }
  }
  attr {
    key: "config"
    value {
      s: ""
    }
  }
  attr {
    key: "config_proto"
    value {
      s: "\202\001\0008\0012\002J\000\n\007\n\003CPU\020\001\n\007\n\003GPU\020\000"
    }
  }
  attr {
    key: "executor_type"
    value {
      s: ""
    }
  }
  attr {
    key: "f"
    value {
      func {
        name: "__inference_pruned_2750"
      }
    }
  }
}
node {
  name: "Const_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
        }
        float_val: 1
      }
    }
  }
}
node {
  name: "AssignAddVariableOp"
  op: "AssignAddVariableOp"
  input: "Variable"
  input: "Const_1"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "ReadVariableOp"
  op: "ReadVariableOp"
  input: "Variable"
  input: "^AssignAddVariableOp"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "global_step/Initializer/zeros"
  op: "Const"
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT64
        tensor_shape {
        }
        int64_val: 0
      }
    }
  }
}
node {
  name: "global_step"
  op: "VariableV2"
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "container"
    value {
      s: ""
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
  attr {
    key: "shared_name"
    value {
      s: ""
    }
  }
}
node {
  name: "global_step/Assign"
  op: "Assign"
  input: "global_step"
  input: "global_step/Initializer/zeros"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "global_step/read"
  op: "Identity"
  input: "global_step"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
}
node {
  name: "AssignAdd/value"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT64
        tensor_shape {
        }
        int64_val: 1
      }
    }
  }
}
node {
  name: "AssignAdd"
  op: "AssignAdd"
  input: "global_step"
  input: "AssignAdd/value"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "use_locking"
    value {
      b: false
    }
  }
}
node {
  name: "global_step/IsVariableInitialized"
  op: "IsVariableInitialized"
  input: "global_step"
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_INT64
    }
  }
}
node {
  name: "global_step/cond/Switch"
  op: "Switch"
  input: "global_step/IsVariableInitialized"
  input: "global_step/IsVariableInitialized"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
}
node {
  name: "global_step/cond/switch_t"
  op: "Identity"
  input: "global_step/cond/Switch:1"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
}
node {
  name: "global_step/cond/switch_f"
  op: "Identity"
  input: "global_step/cond/Switch"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
}
node {
  name: "global_step/cond/pred_id"
  op: "Identity"
  input: "global_step/IsVariableInitialized"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
}
node {
  name: "global_step/cond/read/Switch"
  op: "RefSwitch"
  input: "global_step"
  input: "global_step/cond/pred_id"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
}
node {
  name: "global_step/cond/read"
  op: "Identity"
  input: "global_step/cond/read/Switch:1"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
}
node {
  name: "global_step/cond/Switch_1"
  op: "Switch"
  input: "global_step/Initializer/zeros"
  input: "global_step/cond/pred_id"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
}
node {
  name: "global_step/cond/Merge"
  op: "Merge"
  input: "global_step/cond/Switch_1"
  input: "global_step/cond/read"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
}
node {
  name: "global_step/add/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT64
        tensor_shape {
        }
        int64_val: 0
      }
    }
  }
}
node {
  name: "global_step/add"
  op: "AddV2"
  input: "global_step/cond/Merge"
  input: "global_step/add/y"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
}
node {
  name: "init"
  op: "NoOp"
  input: "^StatefulPartitionedCall"
  input: "^global_step/Assign"
}
node {
  name: "init_1"
  op: "NoOp"
}
node {
  name: "group_deps"
  op: "NoOp"
  input: "^StatefulPartitionedCall"
  input: "^init"
  input: "^init_1"
}
node {
  name: "report_uninitialized_variables/VarIsInitializedOp"
  op: "VarIsInitializedOp"
  input: "Variable"
}
node {
  name: "report_uninitialized_variables/IsVariableInitialized"
  op: "IsVariableInitialized"
  input: "global_step"
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_INT64
    }
  }
}
node {
  name: "report_uninitialized_variables/stack"
  op: "Pack"
  input: "report_uninitialized_variables/VarIsInitializedOp"
  input: "report_uninitialized_variables/IsVariableInitialized"
  device: "/device:CPU:0"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables/LogicalNot"
  op: "LogicalNot"
  input: "report_uninitialized_variables/stack"
  device: "/device:CPU:0"
}
node {
  name: "report_uninitialized_variables/Const"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 2
          }
        }
        string_val: "Variable"
        string_val: "global_step"
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Shape"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice/stack"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice/stack_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice/stack_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice"
  op: "StridedSlice"
  input: "report_uninitialized_variables/boolean_mask/Shape"
  input: "report_uninitialized_variables/boolean_mask/strided_slice/stack"
  input: "report_uninitialized_variables/boolean_mask/strided_slice/stack_1"
  input: "report_uninitialized_variables/boolean_mask/strided_slice/stack_2"
  device: "/device:CPU:0"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Prod/reduction_indices"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Prod"
  op: "Prod"
  input: "report_uninitialized_variables/boolean_mask/strided_slice"
  input: "report_uninitialized_variables/boolean_mask/Prod/reduction_indices"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Shape_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_1/stack"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_1/stack_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_1/stack_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_1"
  op: "StridedSlice"
  input: "report_uninitialized_variables/boolean_mask/Shape_1"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_1/stack"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_1/stack_1"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_1/stack_2"
  device: "/device:CPU:0"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Shape_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_2/stack"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_2/stack_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_2/stack_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/strided_slice_2"
  op: "StridedSlice"
  input: "report_uninitialized_variables/boolean_mask/Shape_2"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_2/stack"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_2/stack_1"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_2/stack_2"
  device: "/device:CPU:0"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/concat/values_1"
  op: "Pack"
  input: "report_uninitialized_variables/boolean_mask/Prod"
  device: "/device:CPU:0"
  attr {
    key: "N"
    value {
      i: 1
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/concat/axis"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/concat"
  op: "ConcatV2"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_1"
  input: "report_uninitialized_variables/boolean_mask/concat/values_1"
  input: "report_uninitialized_variables/boolean_mask/strided_slice_2"
  input: "report_uninitialized_variables/boolean_mask/concat/axis"
  device: "/device:CPU:0"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Reshape"
  op: "Reshape"
  input: "report_uninitialized_variables/Const"
  input: "report_uninitialized_variables/boolean_mask/concat"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Reshape_1/shape"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Reshape_1"
  op: "Reshape"
  input: "report_uninitialized_variables/LogicalNot"
  input: "report_uninitialized_variables/boolean_mask/Reshape_1/shape"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Where"
  op: "Where"
  input: "report_uninitialized_variables/boolean_mask/Reshape_1"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/Squeeze"
  op: "Squeeze"
  input: "report_uninitialized_variables/boolean_mask/Where"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "squeeze_dims"
    value {
      list {
        i: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/GatherV2/axis"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables/boolean_mask/GatherV2"
  op: "GatherV2"
  input: "report_uninitialized_variables/boolean_mask/Reshape"
  input: "report_uninitialized_variables/boolean_mask/Squeeze"
  input: "report_uninitialized_variables/boolean_mask/GatherV2/axis"
  device: "/device:CPU:0"
  attr {
    key: "Taxis"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tindices"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "Tparams"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "batch_dims"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_resources/Const"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
          }
        }
      }
    }
  }
}
node {
  name: "concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "concat"
  op: "ConcatV2"
  input: "report_uninitialized_variables/boolean_mask/GatherV2"
  input: "report_uninitialized_resources/Const"
  input: "concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "report_uninitialized_variables_1/VarIsInitializedOp"
  op: "VarIsInitializedOp"
  input: "Variable"
}
node {
  name: "report_uninitialized_variables_1/IsVariableInitialized"
  op: "IsVariableInitialized"
  input: "global_step"
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_INT64
    }
  }
}
node {
  name: "report_uninitialized_variables_1/stack"
  op: "Pack"
  input: "report_uninitialized_variables_1/VarIsInitializedOp"
  input: "report_uninitialized_variables_1/IsVariableInitialized"
  device: "/device:CPU:0"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables_1/LogicalNot"
  op: "LogicalNot"
  input: "report_uninitialized_variables_1/stack"
  device: "/device:CPU:0"
}
node {
  name: "report_uninitialized_variables_1/Const"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 2
          }
        }
        string_val: "Variable"
        string_val: "global_step"
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Shape"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice/stack"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice/stack_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice/stack_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice"
  op: "StridedSlice"
  input: "report_uninitialized_variables_1/boolean_mask/Shape"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice/stack"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice/stack_1"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice/stack_2"
  device: "/device:CPU:0"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Prod/reduction_indices"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Prod"
  op: "Prod"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice"
  input: "report_uninitialized_variables_1/boolean_mask/Prod/reduction_indices"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Shape_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_1/stack"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_1/stack_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_1/stack_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_1"
  op: "StridedSlice"
  input: "report_uninitialized_variables_1/boolean_mask/Shape_1"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_1/stack"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_1/stack_1"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_1/stack_2"
  device: "/device:CPU:0"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Shape_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_2/stack"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_2/stack_1"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_2/stack_2"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/strided_slice_2"
  op: "StridedSlice"
  input: "report_uninitialized_variables_1/boolean_mask/Shape_2"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_2/stack"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_2/stack_1"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_2/stack_2"
  device: "/device:CPU:0"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/concat/values_1"
  op: "Pack"
  input: "report_uninitialized_variables_1/boolean_mask/Prod"
  device: "/device:CPU:0"
  attr {
    key: "N"
    value {
      i: 1
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/concat/axis"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/concat"
  op: "ConcatV2"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_1"
  input: "report_uninitialized_variables_1/boolean_mask/concat/values_1"
  input: "report_uninitialized_variables_1/boolean_mask/strided_slice_2"
  input: "report_uninitialized_variables_1/boolean_mask/concat/axis"
  device: "/device:CPU:0"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Reshape"
  op: "Reshape"
  input: "report_uninitialized_variables_1/Const"
  input: "report_uninitialized_variables_1/boolean_mask/concat"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Reshape_1/shape"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Reshape_1"
  op: "Reshape"
  input: "report_uninitialized_variables_1/LogicalNot"
  input: "report_uninitialized_variables_1/boolean_mask/Reshape_1/shape"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Where"
  op: "Where"
  input: "report_uninitialized_variables_1/boolean_mask/Reshape_1"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_BOOL
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/Squeeze"
  op: "Squeeze"
  input: "report_uninitialized_variables_1/boolean_mask/Where"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "squeeze_dims"
    value {
      list {
        i: 1
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/GatherV2/axis"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "report_uninitialized_variables_1/boolean_mask/GatherV2"
  op: "GatherV2"
  input: "report_uninitialized_variables_1/boolean_mask/Reshape"
  input: "report_uninitialized_variables_1/boolean_mask/Squeeze"
  input: "report_uninitialized_variables_1/boolean_mask/GatherV2/axis"
  device: "/device:CPU:0"
  attr {
    key: "Taxis"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tindices"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "Tparams"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "batch_dims"
    value {
      i: 0
    }
  }
}
node {
  name: "report_uninitialized_resources_1/Const"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
          }
        }
      }
    }
  }
}
node {
  name: "concat_1/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "concat_1"
  op: "ConcatV2"
  input: "report_uninitialized_variables_1/boolean_mask/GatherV2"
  input: "report_uninitialized_resources_1/Const"
  input: "concat_1/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "init_2"
  op: "NoOp"
}
node {
  name: "init_all_tables"
  op: "NoOp"
  input: "^PartitionedCall"
}
node {
  name: "init_3"
  op: "NoOp"
}
node {
  name: "group_deps_1"
  op: "NoOp"
  input: "^init_2"
  input: "^init_3"
  input: "^init_all_tables"
}
node {
  name: "save/filename/input"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "model"
      }
    }
  }
}
node {
  name: "save/filename"
  op: "PlaceholderWithDefault"
  input: "save/filename/input"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
}
node {
  name: "save/Const"
  op: "PlaceholderWithDefault"
  input: "save/filename"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
}
node {
  name: "save/StaticRegexFullMatch"
  op: "StaticRegexFullMatch"
  input: "save/Const"
  device: "/device:CPU:*"
  attr {
    key: "pattern"
    value {
      s: "^s3://.*"
    }
  }
}
node {
  name: "save/Const_1"
  op: "Const"
  device: "/device:CPU:*"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: ".part"
      }
    }
  }
}
node {
  name: "save/Const_2"
  op: "Const"
  device: "/device:CPU:*"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "_temp/part"
      }
    }
  }
}
node {
  name: "save/Select"
  op: "Select"
  input: "save/StaticRegexFullMatch"
  input: "save/Const_1"
  input: "save/Const_2"
  device: "/device:CPU:*"
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
}
node {
  name: "save/StringJoin"
  op: "StringJoin"
  input: "save/Const"
  input: "save/Select"
  device: "/device:CPU:*"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "separator"
    value {
      s: ""
    }
  }
}
node {
  name: "save/num_shards"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "save/ShardedFilename/shard"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "save/ShardedFilename"
  op: "ShardedFilename"
  input: "save/StringJoin"
  input: "save/ShardedFilename/shard"
  input: "save/num_shards"
  device: "/device:CPU:0"
}
node {
  name: "save/SaveV2/tensor_names"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 2
          }
        }
        string_val: "Variable"
        string_val: "global_step"
      }
    }
  }
}
node {
  name: "save/SaveV2/shape_and_slices"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 2
          }
        }
        string_val: ""
        string_val: ""
      }
    }
  }
}
node {
  name: "save/SaveV2"
  op: "SaveV2"
  input: "save/ShardedFilename"
  input: "save/SaveV2/tensor_names"
  input: "save/SaveV2/shape_and_slices"
  input: "Variable/Read/ReadVariableOp"
  input: "global_step"
  device: "/device:CPU:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
        type: DT_INT64
      }
    }
  }
}
node {
  name: "save/control_dependency"
  op: "Identity"
  input: "save/ShardedFilename"
  input: "^save/SaveV2"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@save/ShardedFilename"
      }
    }
  }
}
node {
  name: "save/MergeV2Checkpoints/checkpoint_prefixes"
  op: "Pack"
  input: "save/ShardedFilename"
  input: "^save/control_dependency"
  device: "/device:CPU:0"
  attr {
    key: "N"
    value {
      i: 1
    }
  }
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "save/MergeV2Checkpoints"
  op: "MergeV2Checkpoints"
  input: "save/MergeV2Checkpoints/checkpoint_prefixes"
  input: "save/Const"
  device: "/device:CPU:0"
  attr {
    key: "delete_old_dirs"
    value {
      b: true
    }
  }
}
node {
  name: "save/Identity"
  op: "Identity"
  input: "save/Const"
  input: "^save/MergeV2Checkpoints"
  input: "^save/control_dependency"
  device: "/device:CPU:0"
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
}
node {
  name: "save/RestoreV2/tensor_names"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 2
          }
        }
        string_val: "Variable"
        string_val: "global_step"
      }
    }
  }
}
node {
  name: "save/RestoreV2/shape_and_slices"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 2
          }
        }
        string_val: ""
        string_val: ""
      }
    }
  }
}
node {
  name: "save/RestoreV2"
  op: "RestoreV2"
  input: "save/Const"
  input: "save/RestoreV2/tensor_names"
  input: "save/RestoreV2/shape_and_slices"
  device: "/device:CPU:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
        type: DT_INT64
      }
    }
  }
}
node {
  name: "save/Identity_1"
  op: "Identity"
  input: "save/RestoreV2"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "save/AssignVariableOp"
  op: "AssignVariableOp"
  input: "Variable"
  input: "save/Identity_1"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "save/Assign"
  op: "Assign"
  input: "global_step"
  input: "save/RestoreV2:1"
  attr {
    key: "T"
    value {
      type: DT_INT64
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@global_step"
      }
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "save/restore_shard"
  op: "NoOp"
  input: "^save/Assign"
  input: "^save/AssignVariableOp"
}
node {
  name: "save/restore_all"
  op: "NoOp"
  input: "^save/restore_shard"
}
library {
  function {
    signature {
      name: "__inference_pruned_2743"
      input_arg {
        name: "save_const_0"
        type: DT_STRING
      }
      input_arg {
        name: "variable"
        type: DT_RESOURCE
      }
      output_arg {
        name: "save_const"
        type: DT_STRING
      }
      is_stateful: true
      control_output: "save/restore_all"
    }
    node_def {
      name: "save/filename/input"
      op: "Const"
      attr {
        key: "dtype"
        value {
          type: DT_STRING
        }
      }
      attr {
        key: "value"
        value {
          tensor {
            dtype: DT_STRING
            tensor_shape {
            }
            string_val: "model"
          }
        }
      }
      experimental_debug_info {
        original_node_names: "save/filename/input"
      }
    }
    node_def {
      name: "save/filename"
      op: "PlaceholderWithDefault"
      input: "save/filename/input:output:0"
      attr {
        key: "dtype"
        value {
          type: DT_STRING
        }
      }
      attr {
        key: "shape"
        value {
          shape {
          }
        }
      }
      experimental_debug_info {
        original_node_names: "save/filename"
      }
    }
    node_def {
      name: "save/RestoreV2/tensor_names"
      op: "Const"
      device: "/device:CPU:0"
      attr {
        key: "dtype"
        value {
          type: DT_STRING
        }
      }
      attr {
        key: "value"
        value {
          tensor {
            dtype: DT_STRING
            tensor_shape {
              dim {
                size: 1
              }
            }
            string_val: "Variable"
          }
        }
      }
      experimental_debug_info {
        original_node_names: "save/RestoreV2/tensor_names"
      }
    }
    node_def {
      name: "save/RestoreV2/shape_and_slices"
      op: "Const"
      device: "/device:CPU:0"
      attr {
        key: "dtype"
        value {
          type: DT_STRING
        }
      }
      attr {
        key: "value"
        value {
          tensor {
            dtype: DT_STRING
            tensor_shape {
              dim {
                size: 1
              }
            }
            string_val: ""
          }
        }
      }
      experimental_debug_info {
        original_node_names: "save/RestoreV2/shape_and_slices"
      }
    }
    node_def {
      name: "save/RestoreV2"
      op: "RestoreV2"
      input: "save_const_0"
      input: "save/RestoreV2/tensor_names:output:0"
      input: "save/RestoreV2/shape_and_slices:output:0"
      device: "/device:CPU:0"
      attr {
        key: "dtypes"
        value {
          list {
            type: DT_FLOAT
          }
        }
      }
      experimental_debug_info {
        original_node_names: "save/RestoreV2"
      }
    }
    node_def {
      name: "save/Identity_1"
      op: "Identity"
      input: "save/RestoreV2:tensors:0"
      attr {
        key: "T"
        value {
          type: DT_FLOAT
        }
      }
      experimental_debug_info {
        original_node_names: "save/Identity_1"
      }
    }
    node_def {
      name: "save/AssignVariableOp"
      op: "AssignVariableOp"
      input: "variable"
      input: "save/Identity_1:output:0"
      attr {
        key: "dtype"
        value {
          type: DT_FLOAT
        }
      }
      experimental_debug_info {
        original_node_names: "save/AssignVariableOp"
      }
    }
    node_def {
      name: "save/restore_shard"
      op: "NoOp"
      input: "^save/AssignVariableOp"
      experimental_debug_info {
        original_node_names: "save/restore_shard"
      }
    }
    node_def {
      name: "save/restore_all"
      op: "NoOp"
      input: "^save/restore_shard"
      experimental_debug_info {
        original_node_names: "save/restore_all"
      }
    }
    ret {
      key: "save_const"
      value: "save_const_0"
    }
    control_ret {
      key: "save/restore_all"
      value: "save/restore_all"
    }
    arg_attr {
      key: 0
      value {
        attr {
          key: "_output_shapes"
          value {
            list {
              shape {
              }
            }
          }
        }
      }
    }
  }
  function {
    signature {
      name: "__inference_pruned_2750"
      input_arg {
        name: "variable"
        type: DT_RESOURCE
      }
      output_arg {
        name: "dummy_fetch"
        type: DT_FLOAT
      }
      control_output: "group_deps"
    }
    node_def {
      name: "init_1"
      op: "NoOp"
      experimental_debug_info {
        original_node_names: "init_1"
      }
    }
    node_def {
      name: "init_all_tables"
      op: "NoOp"
      experimental_debug_info {
        original_node_names: "init_all_tables"
      }
    }
    node_def {
      name: "init_2"
      op: "NoOp"
      experimental_debug_info {
        original_node_names: "init_2"
      }
    }
    node_def {
      name: "group_deps"
      op: "NoOp"
      input: "^init_1"
      input: "^init_2"
      input: "^init_all_tables"
      experimental_debug_info {
        original_node_names: "group_deps"
      }
    }
    node_def {
      name: "dummy_fetch_0"
      op: "Const"
      attr {
        key: "dtype"
        value {
          type: DT_FLOAT
        }
      }
      attr {
        key: "value"
        value {
          tensor {
            dtype: DT_FLOAT
            tensor_shape {
            }
            float_val: 0
          }
        }
      }
      experimental_debug_info {
        original_node_names: "dummy_fetch"
      }
    }
    ret {
      key: "dummy_fetch"
      value: "dummy_fetch_0:output:0"
    }
    control_ret {
      key: "group_deps"
      value: "group_deps"
    }
  }
}
versions {
  producer: 727
  min_consumer: 12
}

